%% @author Christian Haberland
%%
%% @doc records

%%-----------------------------------------------------------
%% Data Type: Vertex
%% where:
%%    id:       Identy
%%    name:     Nodename.
%%--------------------------------------------------------
-record(vertex, {id :: non_neg_integer(),
                name :: string(),
                attr :: orddict:new()}).

%%-----------------------------------------------------------
%% Data Type: Edge
%% where:
%%    id:       Identy
%%    type:     Type [directed|undirected]
%%    source:   Identy Sourcenode
%%    target:   Identy Targetnode
%%    attr:     Attributs
%%--------------------------------------------------------
-record(edge, {id :: non_neg_integer(),
              type :: directed|undirected,
              source  :: non_neg_integer(),
              target  :: non_neg_integer(),
              attr = orddict:new()}).

%%-----------------------------------------------------------
%% Data Type: Graph
%% where:
%%    vertexes: A list of Vertexes (default is []).
%%    edges:    A list of Edges (default is []).
%%    id:       Identy 
%%--------------------------------------------------------
-record(graph, {id :: non_neg_integer(),
                vertexes = orddict:new() :: [#vertex{}],
                edges = orddict:new() :: [#edge{}]}).

